#include <crypto/internal/hash.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/types.h>
#include <crypto/sm3.h>
#include <crypto/sm3_base.h>
#include <linux/bitops.h>
#include <asm/byteorder.h>
#include <asm/unaligned.h>

#include "../mysm3/mysm3.h"

static struct shash_alg sm3_alg;

static int _my_init(void)
{
	sm3_init_alg_data(&sm3_alg, THIS_MODULE);

	return sm3_generic_mod_init(&sm3_alg);
}

static void _my_exit(void)
{
	sm3_generic_mod_fini(&sm3_alg);
}

subsys_initcall(_my_init);
module_exit(_my_exit);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("SM3 Secure Hash Algorithm");

MODULE_ALIAS_CRYPTO("sm3");
MODULE_ALIAS_CRYPTO("sm3-generic");